package com.gitee.grower.api.event

import com.gitee.grower.core.scheme.Operation
import com.gitee.grower.core.scheme.Scheme
import org.bukkit.entity.Player
import org.bukkit.inventory.ItemStack
import taboolib.platform.type.BukkitProxyEvent

class PlayerItemModifyGrowEvents {

    class Pre(val player: Player,val itemStack: ItemStack,val scheme: Scheme,val structure: Scheme.Structure,val chance: Double) : BukkitProxyEvent()

    class Post(val player: Player,val itemStack: ItemStack,val scheme: Scheme,val structure: Scheme.Structure): BukkitProxyEvent()

    class Succeed(val player: Player,val itemStack: ItemStack,val scheme: Scheme,val structure: Scheme.Structure): BukkitProxyEvent()

    class Failed(val player: Player,val itemStack: ItemStack,val scheme: Scheme,val structure: Scheme.Structure) : BukkitProxyEvent()

    /**
     * 掉级前
     */
    class DegradedPre(val player: Player,val itemStack: ItemStack,val scheme: Scheme,val structure: Scheme.Structure,val chance: Double) : BukkitProxyEvent()

    class DegradedPost(val player: Player,val itemStack: ItemStack,val scheme: Scheme,val structure: Scheme.Structure) : BukkitProxyEvent()

    class NegativePre(val player: Player,val itemStack: ItemStack,val scheme: Scheme,val structure: Scheme.Structure,val chance: Double) : BukkitProxyEvent()

    class NegativePost(val player: Player,val itemStack: ItemStack,val scheme: Scheme,val structure: Scheme.Structure,val string: String) : BukkitProxyEvent()

}